// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package cn.com.smartdevices.bracelet;
import android.app.Activity;
import android.app.DialogFragment;
import android.app.DownloadManager;
import android.app.FragmentManager;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.text.format.Time;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import cn.com.smartdevices.bracelet.BleTask.BleSetPersonalInfoTask;
import cn.com.smartdevices.bracelet.activity.WebActivity;
import cn.com.smartdevices.bracelet.analysis.SleepInfo;
import cn.com.smartdevices.bracelet.analysis.StepsInfo;
import cn.com.smartdevices.bracelet.chart.util.ChartData;
import cn.com.smartdevices.bracelet.model.BraceletBtInfo;
import cn.com.smartdevices.bracelet.model.DaySportData;
import cn.com.smartdevices.bracelet.model.LoginData;
import cn.com.smartdevices.bracelet.model.PersonInfo;
import cn.com.smartdevices.bracelet.model.ReportData;
import cn.com.smartdevices.bracelet.model.ShareData;
import cn.com.smartdevices.bracelet.model.SportData;
import cn.com.smartdevices.bracelet.model.SportDay;
import cn.com.smartdevices.bracelet.model.SwitchOperator;
import cn.com.smartdevices.bracelet.ui.ApkUpgradeFragment;
import cn.com.smartdevices.bracelet.ui.DimPanelFragment;
import cn.com.smartdevices.bracelet.ui.ProgressBarFragment;
import cn.com.smartdevices.bracelet.view.CustomToast;
import cn.com.smartdevices.bracelet.view.Util;
import cn.com.smartdevices.bracelet.webapi.BraceletHttpClient;
import cn.com.smartdevices.bracelet.webapi.WebAPI;
import com.google.gson.Gson;
import com.loopj.android.http.AsyncHttpClient;
import com.tencent.mm.sdk.openapi.IWXAPI;
import com.tencent.mm.sdk.openapi.WXAPIFactory;
import com.xiaomi.hm.bleservice.BLEService;
import com.xiaomi.hm.bleservice.profile.MiLiProfile;
import com.xiaomi.market.sdk.UpdateResponse;
import com.xiaomi.market.sdk.XiaomiUpdateAgent;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Method;
import java.net.URLDecoder;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
// Referenced classes of package cn.com.smartdevices.bracelet:
// Debug, Keeper, h, i,
// BraceletApp, DataManager, f, BraceletImageLoader,
// g, e
public class Utils
{
public static final String APK_PATH = "APK_PATH";
public static final String CHANGE_LOG = "CHANGE_LOG";
public static final boolean DEBUG = true;
public static final String DEVICE_TYPE = "0";
public static final boolean DISABLE_BAIDU_LOCATION = true;
public static final boolean USE_MILIAO_ICON = true;
public static final boolean USE_MILIAO_NICKNAME = true;
public static final String VERSION_NAME = "VERSION_NAME";
private static final String a = "Utils";
private static Gson b;
private static final String c[] = {
"MI 2", "MI 2S"
};
private static final String d[] = {
"jt>", "aku", "blv", "cmw", "dnx", "eoy", "fpz", "gq!", "hr(", "is)"
};
public Utils()
{
}
public static String URLDecodeStr(String s)
{
String s1;
try
{
s1 = URLDecoder.decode(s, "utf-8");
}
catch (UnsupportedEncodingException unsupportedencodingexception)
{
unsupportedencodingexception.printStackTrace();
return s;
}
return s1;
}
private static int a(android.graphics.BitmapFactory.Options options, int j, int k)
{
int l = options.outHeight;
int i1 = options.outWidth;
int j1 = 1;
if (l > k || i1 > j)
{
int k1 = l / 2;
for (int l1 = i1 / 2; k1 / j1 > k && l1 / j1 > j; j1 *= 2) { }
}
return j1;
}
private static String a(Context context, int j)
{
DecimalFormat decimalformat = new DecimalFormat("#.#");
float f1 = (float)j / 42000F;
float f2 = Math.round(f1);
if (f2 > f1)
{
f2 -= 0.5F;
}
String s1;
if ((float)j > 42000F)
{
String s2 = decimalformat.format(f2);
if ((double)Math.abs(f2 - f1) < 0.10000000000000001D)
{
s1 = context.getString(0x7f0d00e9, new Object[] {
s2
});
} else
{
s1 = context.getString(0x7f0d00ea, new Object[] {
s2
});
}
} else
if (Math.abs(j - 21000) < 500)
{
s1 = context.getString(0x7f0d00c0, new Object[] {
"1"
});
} else
if (j > 21000)
{
s1 = context.getString(0x7f0d00c1, new Object[] {
"1"
});
} else
{
float f3 = (float)j / 400F;
float f4 = Math.round(f3);
if (f4 > f3)
{
f4 -= 0.5F;
}
String s = decimalformat.format(f4);
if (f4 == 0.0F)
{
s1 = "";
} else
{
s1 = context.getString(0x7f0d0163, new Object[] {
s
});
}
}
Debug.i("Utils", (new StringBuilder()).append("maraton:").append(j).append(", str=").append(s1).toString());
return s1;
}
static void a(UpdateResponse updateresponse, Activity activity, String s)
{
b(updateresponse, activity, s);
}
private static String b(Context context, int j)
{
int k = j / 9;
String s;
if (k == 0)
{
s = "";
} else
{
DecimalFormat decimalformat = new DecimalFormat("#.#");
s = (new StringBuilder()).append(k).append(context.getString(0x7f0d00be)).toString();
if (k >= 1000)
{
return (new StringBuilder()).append(decimalformat.format((double)k / 1000D)).append(context.getString(0x7f0d00db)).toString();
}
}
return s;
}
private static void b(UpdateResponse updateresponse, Activity activity, String s)
{
if (activity == null || updateresponse == null)
{
Debug.i("Utils", "showUpdateDlg return with NULL pointer!");
return;
}
if (!TextUtils.isEmpty(updateresponse.updateLog))
{
Debug.i("Utils", (new StringBuilder()).append("mi shop updateLog=").append(updateresponse.updateLog).toString());
s = updateresponse.updateLog;
}
Bundle bundle = new Bundle();
bundle.putString("VERSION_NAME", updateresponse.versionName);
bundle.putString("CHANGE_LOG", s);
bundle.putString("APK_PATH", updateresponse.path);
DimPanelFragment.showPanel(activity, cn/com/smartdevices/bracelet/ui/ApkUpgradeFragment, bundle);
}
public static void bytesToDayDataTest(String s, String s1, byte abyte0[])
{
int j = abyte0.length;
Debug.i(s, (new StringBuilder()).append("=============================").append(s1).append("============================i").toString());
for (int k = 0; k < j; k += 3)
{
com.xiaomi.hm.bleservice.profile.IMiLiProfile.ActivityData activitydata = new com.xiaomi.hm.bleservice.profile.IMiLiProfile.ActivityData(abyte0[k + 1], abyte0[k + 2], abyte0[k]);
Debug.i(s, (new SportData(k / 3, 0xff & activitydata.category, 0xff & activitydata.intensity, 0xff & activitydata.steps)).toString());
}
Debug.i(s, (new StringBuilder()).append("=============================").append(s1).append("============================o").toString());
}
public static int calculateInSampleSize1(android.graphics.BitmapFactory.Options options, int j, int k)
{
int k1;
label0:
{
int l = options.outHeight;
int i1 = options.outWidth;
int j1 = 1;
if (l > k || i1 > j)
{
j1 = Math.round((float)l / (float)k);
k1 = Math.round((float)i1 / (float)j);
if (j1 <= k1)
{
break label0;
}
}
return j1;
}
return k1;
}
public static void checkApkUpgrade(Activity activity, boolean flag)
{
Calendar calendar = Calendar.getInstance();
if (!compaireDateCalendarA_before_B(Keeper.readLastCheckUpdateDate(), calendar) && !flag)
{
Debug.i("Utils", "Today has checked upgrade.");
return;
}
Keeper.keepCheckUpdateApkDate();
if (flag)
{
CustomToast.makeText(activity, 0x7f0d0044, 0).show();
}
BraceletHttpClient.client.get("https://hm.xiaomi.com/huami.health.changelog.json", new h(flag));
}
public static boolean checkDeviceCompatible()
{
String s = Build.MODEL;
Debug.i("Utils", (new StringBuilder()).append("model:").append(s).toString());
String as[] = c;
int j = as.length;
int k = 0;
do
{
label0:
{
boolean flag = false;
if (k < j)
{
if (!as[k].equals(s))
{
break label0;
}
flag = true;
}
return flag;
}
k++;
} while (true);
}
public static boolean checkInputText(String s)
{
while (s == null || s.length() < 1 || s.length() > 20)
{
return false;
}
return true;
}
public static String checkNull(String s)
{
if (s == null || s.equals("null"))
{
s = "";
}
return s;
}
public static final boolean checkSystemRequirement()
{
Debug.i("Utils", (new StringBuilder()).append("Sdk : ").append(android.os.Build.VERSION.SDK_INT).append(" model:").append(Build.MODEL).toString());
return android.os.Build.VERSION.SDK_INT >= 18;
}
public static void checkXiaomiApkUpdate(Activity activity, boolean flag, String s)
{
Debug.i("Utils", "checkXiaomiApkUpdate");
XiaomiUpdateAgent.setUpdateAutoPopup(false);
XiaomiUpdateAgent.setUpdateListener(new i(activity, s, flag));
XiaomiUpdateAgent.update(activity);
}
public static boolean compaireDateCalendarA_before_B(Calendar calendar, Calendar calendar1)
{
if (calendar != null && calendar1 != null)
{
int j = calendar.get(1);
int k = calendar1.get(1);
int l = calendar.get(6);
int i1 = calendar1.get(6);
int j1 = l + j * 365;
int k1 = i1 + k * 365;
Debug.i("Utils", (new StringBuilder()).append("totalA =").append(j1).append(", totalB=").append(k1).toString());
if (j1 >= k1)
{
return false;
}
}
return true;
}
public static void connect(BluetoothDevice bluetoothdevice, boolean flag)
{
Debug.i("Utils", (new StringBuilder()).append("connect device=").append(bluetoothdevice.getAddress()).append(", ").append(bluetoothdevice.getName()).toString());
Debug.f("Utils", (new StringBuilder()).append("connect device=").append(bluetoothdevice.getAddress()).append(", ").append(bluetoothdevice.getName()).toString());
cn.com.smartdevices.bracelet.BraceletApp.BLEService.stopScan();
MiLiProfile miliprofile = (MiLiProfile)cn.com.smartdevices.bracelet.BraceletApp.BLEService.newConnection(bluetoothdevice, com/xiaomi/hm/bleservice/profile/MiLiProfile);
miliprofile.setAutoReconnect(flag);
miliprofile.connect();
}
public static float convertDpToPixel(float f1, Context context)
{
return f1 * ((float)context.getResources().getDisplayMetrics().densityDpi / 160F);
}
public static float convertPixelsToDp(float f1, Context context)
{
return f1 / ((float)context.getResources().getDisplayMetrics().densityDpi / 160F);
}
public static ArrayList copy(ArrayList arraylist)
{
ArrayList arraylist1 = new ArrayList(arraylist.size());
try
{
for (Iterator iterator = arraylist.iterator(); iterator.hasNext(); arraylist1.add(((SportData)iterator.next()).copy())) { }
}
catch (CloneNotSupportedException clonenotsupportedexception)
{
clonenotsupportedexception.printStackTrace();
arraylist1.clear();
}
return arraylist1;
}
public static ArrayList copyBySerialize(ArrayList arraylist)
{
ArrayList arraylist1;
try
{
ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream();
(new ObjectOutputStream(bytearrayoutputstream)).writeObject(arraylist);
arraylist1 = (ArrayList)(new ObjectInputStream(new ByteArrayInputStream(bytearrayoutputstream.toByteArray()))).readObject();
}
catch (Exception exception)
{
exception.printStackTrace();
Debug.i("WPJ", exception.getMessage());
return new ArrayList();
}
return arraylist1;
}
public static Bitmap createImageSafely(String s, int j, int k)
{
android.graphics.BitmapFactory.Options options;
options = new android.graphics.BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(s, options);
options.inSampleSize = calculateInSampleSize1(options, j, k);
options.inJustDecodeBounds = false;
Bitmap bitmap1 = BitmapFactory.decodeFile(s, options);
Bitmap bitmap = bitmap1;
_L2:
Debug.i("WPJ", (new StringBuilder()).append("createImageSafely:").append(bitmap.getWidth()).append(",").append(bitmap.getHeight()).append("==").append(options.inSampleSize).toString());
return bitmap;
Exception exception;
exception;
bitmap = null;
if (true) goto _L2; else goto _L1
_L1:
}
public static String encodeTel(String s)
{
String s1;
String s2;
int j;
s1 = s.replace("+", "");
if (s1.startsWith("86"))
{
s1 = s1.substring(2, s1.length());
}
s2 = "";
j = 0;
_L2:
String s3;
if (j >= s1.length())
{
break; /* Loop/switch isn't completed */
}
int k = Integer.valueOf((new StringBuilder()).append(s1.charAt(j)).append("").toString()).intValue();
int l = (int)(3D * Math.random());
char c1 = d[k].charAt(l);
s3 = (new StringBuilder()).append(s2).append(c1).toString();
s2 = s3;
j++;
if (true) goto _L2; else goto _L1
Exception exception;
exception;
exception.printStackTrace();
_L1:
return s2;
}
public static int getCalendarDay(Calendar calendar)
{
return 365 * calendar.get(1) + calendar.get(6);
}
public static String getContinueReachGoalShareTips(Context context, ReportData reportdata)
{
int j = reportdata.getSteps();
int k = reportdata.getDistance();
int l = reportdata.getContinueDays();
int i1 = reportdata.getRunDistance();
String s = a(context, k);
String s1 = (new StringBuilder()).append(j / l).append("").toString();
String as[] = context.getResources().getStringArray(0x7f070000);
String s2 = "";
int j1 = as.length;
if (j1 >= 0)
{
s2 = as[Calendar.getInstance().get(6) % j1];
}
String as1[] = ChartData.formatDistance(context, k - i1);
String s3 = (new StringBuilder()).append(as1[0]).append(as1[1]).toString();
if (i1 <= 0)
{
return context.getString(0x7f0d015e, new Object[] {
s3, s1, s, s2
});
} else
{
String as2[] = ChartData.formatDistance(context, i1);
return context.getString(0x7f0d015f, new Object[] {
s3, (new StringBuilder()).append(as2[0]).append(as2[1]).toString(), s, s2
});
}
}
public static String getDateStringFromMillisecond(Context context, String s, String s1)
{
if (s == null)
{
s = "MM/dd HH:mm";
}
if (s1 == null)
{
return context.getString(0x7f0d011f);
}
SimpleDateFormat simpledateformat;
Long long2;
Long long3;
Date date;
String s2;
String s3;
int j;
Object aobj[];
try
{
simpledateformat = new SimpleDateFormat(s);
Long long1 = Long.valueOf(System.currentTimeMillis());
Long.valueOf(0L);
if (s1.length() < 13)
{
long2 = Long.valueOf(1000L * Long.parseLong(s1));
} else
{
long2 = Long.valueOf(Long.parseLong(s1));
}
long3 = Long.valueOf(Long.valueOf(long1.longValue() - long2.longValue()).longValue() / 60000L);
if (long3.longValue() == 0L)
{
return context.getString(0x7f0d011f);
}
}
catch (Exception exception)
{
exception.printStackTrace();
return null;
}
if (long3.longValue() > 0L && long3.longValue() < 60L)
{
aobj = new Object[1];
aobj[0] = (new StringBuilder()).append("").append(long3).toString();
return context.getString(0x7f0d0021, aobj);
}
date = new Date(long2.longValue());
if (long3.longValue() > 60L && long3.longValue() < 1440L)
{
s3 = simpledateformat.format(date);
j = s3.length();
return (new StringBuilder()).append(context.getString(0x7f0d01b9)).append(" ").append(s3.substring(j - 5, j)).toString();
}
s2 = simpledateformat.format(date);
return s2;
}
public static ShareData getDayShareTips(Context context, int j, int k, int l, int i1, ShareData sharedata)
{
int j1 = Keeper.readPersonInfo().getDaySportGoalSteps();
String as[] = ChartData.formatDistance(context, k);
String s = (new StringBuilder()).append(as[0]).append(as[1]).toString();
String s1;
String s2;
if (l > 0)
{
String as1[] = ChartData.formatDistance(context, l);
Object aobj1[] = new Object[3];
aobj1[0] = s;
aobj1[1] = (new StringBuilder()).append(as1[0]).append(as1[1]).toString();
aobj1[2] = Integer.valueOf(i1);
s1 = context.getString(0x7f0d016c, aobj1);
} else
{
Object aobj[] = new Object[2];
aobj[0] = s;
aobj[1] = Integer.valueOf(i1);
s1 = context.getString(0x7f0d0169, aobj);
}
if (j1 > j)
{
sharedata.setType(1);
sharedata.title = context.getString(0x7f0d016f);
s2 = (new StringBuilder()).append(s1).append(context.getString(0x7f0d0160)).toString();
} else
{
sharedata.setType(0);
sharedata.title = context.getString(0x7f0d0171);
s2 = (new StringBuilder()).append(s1).append(context.getString(0x7f0d0161)).toString();
}
sharedata.content = (new StringBuilder()).append("").append(j).toString();
sharedata.description = s2;
sharedata.contentUnit = context.getString(0x7f0d01c4);
return sharedata;
}
public static void getDayShareTips(Context context, StepsInfo stepsinfo, ShareData sharedata)
{
getDayShareTips(context, stepsinfo.getStepsCount(), stepsinfo.getDistance(), stepsinfo.getRunDistance(), stepsinfo.getCalories(), sharedata);
}
public static int getFwVersion(byte abyte0[])
{
return (0xff & abyte0[1059]) << 24 | (0xff & abyte0[1058]) << 16 | (0xff & abyte0[1057]) << 8 | 0xff & abyte0[1056];
}
public static Gson getGson()
{
if (b == null)
{
b = new Gson();
}
return b;
}
public static void getMainUIShareTips(Context context, DaySportData daysportdata, ShareData sharedata)
{
int j = ChartData.getDynamicData().getCurrentMode();
if (j != 1) goto _L2; else goto _L1
_L1:
StepsInfo stepsinfo = daysportdata.getStepsInfo();
String s4 = ChartData.formatTimeLength(context, stepsinfo.getStepsTimeCount());
String s5 = "";
if (stepsinfo.getRunTimeCount() > 0)
{
s5 = (new StringBuilder()).append(", ").append(context.getString(0x7f0d0134)).append(ChartData.formatTimeLength(context, stepsinfo.getRunTimeCount())).toString();
}
String s6 = context.getString(0x7f0d0160);
sharedata.setType(1);
if (stepsinfo.getStepsCount() >= Keeper.readPersonInfo().getDaySportGoalSteps())
{
s6 = context.getString(0x7f0d0161);
sharedata.setType(0);
}
sharedata.description = context.getString(0x7f0d00e6, new Object[] {
s4, s5, s6
});
_L4:
return;
_L2:
if (j != 16) goto _L4; else goto _L3
_L3:
SleepInfo sleepinfo;
String s;
String s1;
String s2;
String s3;
int k;
sleepinfo = daysportdata.getSleepInfo();
s = ChartData.formatTime(sleepinfo.getStartDateMin());
s1 = ChartData.formatTime(sleepinfo.getStopDateMin());
s2 = ChartData.formatTimeLength(context, sleepinfo.getRemCount());
Debug.i("Utils", (new StringBuilder()).append("awake num = ").append(sleepinfo.getAwakeNum()).append(", count = ").append(sleepinfo.getAwakeCount()).toString());
s3 = "";
k = sleepinfo.getAwakeNum();
if (k != 1) goto _L6; else goto _L5
_L5:
s3 = context.getString(0x7f0d001c);
_L8:
sharedata.description = context.getString(0x7f0d00e7, new Object[] {
s2, s3, s, s1
});
return;
_L6:
if (k > 1)
{
Object aobj[] = new Object[1];
aobj[0] = Integer.valueOf(sleepinfo.getAwakeNum());
s3 = context.getString(0x7f0d001b, aobj);
}
if (true) goto _L8; else goto _L7
_L7:
}
public static String getMiuiBuildTimestamp(Context context)
{
return getSystemProperties(context, "ro.build.date.utc");
}
public static String getMiuiBuildVersion(Context context)
{
return getSystemProperties(context, "ro.build.version.incremental");
}
public static String getMiuiVersionCode(Context context)
{
return getSystemProperties(context, "ro.miui.ui.version.code");
}
public static String getMiuiVersionName(Context context)
{
return getSystemProperties(context, "ro.miui.ui.version.name");
}
public static String getMonthShareTips(Context context, int j, int k, int l, String s, int i1, int j1)
{
int k1 = k - j1;
String as[] = ChartData.formatDistance(context, k1);
String s1 = (new StringBuilder()).append(as[0]).append(as[1]).toString();
String s2 = (new DecimalFormat("#.#")).format(1E-04F * (float)k1);
String s3 = a(context, k1);
if (j1 > 0)
{
String as1[] = ChartData.formatDistance(context, j1);
String s4 = (new StringBuilder()).append(as1[0]).append(as1[1]).toString();
Object aobj1[] = new Object[6];
aobj1[0] = s1;
aobj1[1] = s4;
aobj1[2] = s3;
aobj1[3] = s2;
aobj1[4] = s;
aobj1[5] = (new StringBuilder()).append(i1).append("").toString();
return context.getString(0x7f0d016b, aobj1);
} else
{
Object aobj[] = new Object[6];
aobj[0] = s1;
aobj[1] = s3;
aobj[2] = Integer.valueOf(l);
aobj[3] = s2;
aobj[4] = s;
aobj[5] = (new StringBuilder()).append(i1).append("").toString();
return context.getString(0x7f0d016a, aobj);
}
}
public static String getPhoneNum(Context context)
{
String s = ((TelephonyManager)context.getSystemService("phone")).getLine1Number();
Debug.i("Utils", (new StringBuilder()).append("get tel =").append(s).toString());
if (s == null)
{
s = "";
}
return s;
}
public static String getPostUrl()
{
LoginData logindata = Keeper.readLoginData();
String s = "";
if (logindata != null)
{
HashMap hashmap = new HashMap();
hashmap.put("userid", (new StringBuilder()).append("").append(logindata.uid).toString());
hashmap.put("security", logindata.security);
hashmap.put("username", Keeper.readUserName());
s = BraceletHttpClient.getParamString(hashmap);
}
return s;
}
public static String getStringFromBytes(byte abyte0[])
{
if (abyte0 == null)
{
return "";
}
String s;
try
{
s = new String(abyte0);
}
catch (Exception exception)
{
Debug.i("chenee", (new StringBuilder()).append("Utils.java getStringFromBytes error:").append(exception.getMessage()).toString());
return "";
}
return s;
}
public static String getSyncTime(Context context, int j)
{
long l = Keeper.readSyncTime();
if (!isToday(l))
{
return context.getString(0x7f0d0077);
} else
{
SimpleDateFormat simpledateformat = new SimpleDateFormat("HH:mm");
Date date = new Date(l);
Object aobj[] = new Object[1];
aobj[0] = simpledateformat.format(date);
return context.getString(j, aobj);
}
}
public static String getSystemProperties(Context context, String s)
{
String s1;
try
{
Class class1 = context.getClassLoader().loadClass("android.os.SystemProperties");
Method method = class1.getMethod("get", new Class[] {
java/lang/String
});
Object aobj[] = new Object[1];
aobj[0] = new String(s);
s1 = (String)method.invoke(class1, aobj);
}
catch (IllegalArgumentException illegalargumentexception)
{
throw illegalargumentexception;
}
catch (Exception exception)
{
return "";
}
return s1;
}
public static String getWeekShareTips(Context context, int j, int k, String s, int l, int i1)
{
int j1 = j - i1;
String as[] = ChartData.formatDistance(context, j1);
String s1 = (new StringBuilder()).append(as[0]).append(as[1]).toString();
String s2 = a(context, j1);
if (i1 <= 0)
{
if (s2 != "" && s2 != null)
{
s2 = (new StringBuilder()).append(", ").append(s2).toString();
}
Object aobj1[] = new Object[5];
aobj1[0] = s1;
aobj1[1] = s2;
aobj1[2] = Integer.valueOf(k);
aobj1[3] = s;
aobj1[4] = (new StringBuilder()).append(l).append("").toString();
return context.getString(0x7f0d016d, aobj1);
} else
{
String as1[] = ChartData.formatDistance(context, i1);
String s3 = (new StringBuilder()).append(as1[0]).append(as1[1]).toString();
Object aobj[] = new Object[5];
aobj[0] = s1;
aobj[1] = s3;
aobj[2] = s2;
aobj[3] = s;
aobj[4] = (new StringBuilder()).append(l).append("").toString();
return context.getString(0x7f0d016e, aobj);
}
}
public static void gotoWeb(String s, String s1, Activity activity)
{
Intent intent = new Intent(activity, cn/com/smartdevices/bracelet/activity/WebActivity);
intent.putExtra("web_type", 2);
intent.putExtra("web_url", s);
intent.putExtra("Label", s1);
activity.startActivity(intent);
}
public static void hideProgressDialog(Activity activity)
{
if (activity != null) goto _L2; else goto _L1
_L1:
return;
_L2:
DialogFragment dialogfragment;
try
{
dialogfragment = (DialogFragment)activity.getFragmentManager().findFragmentByTag(cn/com/smartdevices/bracelet/ui/ProgressBarFragment.getName());
}
catch (Exception exception)
{
return;
}
if (dialogfragment == null) goto _L1; else goto _L3
_L3:
dialogfragment.dismiss();
return;
}
public static boolean isBinded()
{
BraceletBtInfo braceletbtinfo = Keeper.readBraceletBtInfo();
return braceletbtinfo != null && BluetoothAdapter.checkBluetoothAddress(braceletbtinfo.address);
}
public static boolean isBraceletConnected()
{
if (cn.com.smartdevices.bracelet.BraceletApp.BLEService == null)
{
return false;
}
MiLiProfile miliprofile = (MiLiProfile)cn.com.smartdevices.bracelet.BraceletApp.BLEService.getDefaultPeripheral();
boolean flag;
if (miliprofile != null && miliprofile.getProfileState() == 1 && miliprofile.getState() == com.xiaomi.hm.bleservice.gatt.IGattCallback.STATE.CONNECTED)
{
flag = true;
} else
{
flag = false;
}
return flag;
}
public static boolean isNetworkConnected(Context context)
{
ConnectivityManager connectivitymanager = (ConnectivityManager)context.getSystemService("connectivity");
if (connectivitymanager.getActiveNetworkInfo() != null)
{
return connectivitymanager.getActiveNetworkInfo().isConnected();
} else
{
return false;
}
}
public static boolean isOnceBinded()
{
BraceletBtInfo braceletbtinfo = Keeper.readBraceletBtInfo();
return braceletbtinfo != null && !TextUtils.isEmpty(braceletbtinfo.address);
}
public static boolean isSupportBle(Context context)
{
boolean flag = context.getPackageManager().hasSystemFeature("android.hardware.bluetooth_le");
Debug.i("Utils", (new StringBuilder()).append("isSupportBle:").append(flag).toString());
return flag;
}
public static boolean isSupportMiuiUnlock(Context context)
{
String s = getSystemProperties(context, "sys.keyguard.bleunlock");
Debug.i("Utils", (new StringBuilder()).append("unlock:").append(s).toString());
return s != null && s.equals("true");
}
public static boolean isSupportUnlockScreenByBracelet(Context context)
{
if (isSupportBle(context))
{
String s = getSystemProperties(context, "ro.miui.ui.version.name");
String s1 = getSystemProperties(context, "ro.miui.ui.version.code");
Debug.i("Utils", (new StringBuilder()).append("isSupportUnlockScreenByBracelet:miui version name=").append(s).append(",miui version code=").append(s1).toString());
if (s1 != null && s1.length() != 0 && s != null && s.length() != 0 && Integer.valueOf(s1).intValue() >= 3)
{
return true;
}
}
return false;
}
public static boolean isToday(long l)
{
Time time = new Time();
time.set(l);
int j = time.year;
int k = time.month;
int i1 = time.monthDay;
time.set(System.currentTimeMillis());
return j == time.year && k == time.month && i1 == time.monthDay;
}
public static boolean isTodayReachGoal()
{
int j = Keeper.readPersonInfo().getDaySportGoalSteps();
SportDay sportday = DataManager.getInstance().getCurDay();
DaySportData daysportdata = DataManager.getInstance().get(sportday);
return daysportdata.getStepsInfo() != null && daysportdata.getStepsInfo().getStepsCount() >= j;
}
public static boolean isUseUnlockByBracelet(Context context)
{
int j;
try
{
j = android.provider.Settings.Secure.getInt(context.getContentResolver(), "bluetooth_unlock_status");
}
catch (android.provider.Settings.SettingNotFoundException settingnotfoundexception)
{
settingnotfoundexception.printStackTrace();
return false;
}
return j == 1;
}
public static boolean isViewContains(View view, int j, int k)
{
boolean flag = true;
int ai[] = new int[2];
view.getLocationOnScreen(ai);
int l = ai[0];
int i1 = ai[flag];
int j1 = view.getWidth();
int k1 = view.getHeight();
if (j < l || j > l + j1 || k < i1 || k > i1 + k1)
{
flag = false;
}
return flag;
}
public static boolean isWeixinSupportJump(Context context)
{
if (WXAPIFactory.createWXAPI(context, "wx28e2610e92fbe111").isWXAppInstalled())
{
int j;
try
{
j = context.getPackageManager().getPackageInfo("com.tencent.mm", 0).versionCode;
}
catch (android.content.pm.PackageManager.NameNotFoundException namenotfoundexception)
{
return false;
}
if (j >= 480)
{
return true;
}
}
return false;
}
public static String purgeJson(String s)
{
Debug.i("Utils", (new StringBuilder()).append("\n====> before purge json :").append(s).toString());
String s1 = s.replace("\"[", "[").replace("]\"", "]").replace("}\"", "}").replace("\"{", "{").replace("\\\"", "\"").replace("\\/", "/");
Debug.i("Utils", (new StringBuilder()).append("\n====> after purge json([], {},\\\", \\/) :").append(s1).toString());
return s1;
}
public static void queryDownloadStatus(Activity activity)
{
DownloadManager downloadmanager;
long l;
Cursor cursor;
downloadmanager = (DownloadManager)activity.getSystemService("download");
android.app.DownloadManager.Query query = new android.app.DownloadManager.Query();
l = Keeper.readDownloadApkId();
query.setFilterById(new long[] {
l
});
cursor = downloadmanager.query(query);
if (!cursor.moveToFirst()) goto _L2; else goto _L1
_L1:
cursor.getInt(cursor.getColumnIndex("status"));
JVM INSTR lookupswitch 5: default 120
// 1: 129
// 2: 137
// 4: 121
// 8: 146
// 16: 234;
goto _L2 _L3 _L4 _L5 _L6 _L7
_L2:
return;
_L5:
Debug.i("Utils", "STATUS_PAUSED");
_L3:
Debug.i("Utils", "STATUS_PENDING");
_L4:
Debug.i("Utils", "STATUS_RUNNING");
return;
_L6:
Debug.i("Utils", (new StringBuilder()).append("STATUS_SUCCESSFUL download_id=").append(l).toString());
Uri uri = downloadmanager.getUriForDownloadedFile(l);
Intent intent = new Intent("android.intent.action.VIEW");
intent.setDataAndType(uri, "application/vnd.android.package-archive");
intent.setFlags(0x10000000);
activity.startActivity(intent);
CustomToast.makeText(activity, 0x7f0d0016, 1).show();
Keeper.keepDownloadApkId(-1L);
return;
_L7:
Debug.i("Utils", "STATUS_FAILED");
long al[] = new long[1];
al[0] = Keeper.readDownloadApkId();
downloadmanager.remove(al);
Keeper.keepDownloadApkId(-1L);
CustomToast.makeText(activity, 0x7f0d006a, 1).show();
return;
}
public static boolean removeBond(Class class1, BluetoothDevice bluetoothdevice)
{
boolean flag;
try
{
flag = ((Boolean)class1.getMethod("removeBond", new Class[0]).invoke(bluetoothdevice, new Object[0])).booleanValue();
}
catch (Exception exception)
{
return false;
}
return flag;
}
public static String saveBitmapToFile(Bitmap bitmap)
{
return saveBitmapToFile(bitmap, 90);
}
public static String saveBitmapToFile(Bitmap bitmap, int j)
{
String s = (new StringBuilder()).append(Environment.getExternalStorageDirectory().getAbsolutePath()).append("/tmp.jpg").toString();
saveBitmapToFile(s, bitmap, j);
return s;
}
public static boolean saveBitmapToFile(String s, Bitmap bitmap)
{
return saveBitmapToFile(s, bitmap, 90);
}
public static boolean saveBitmapToFile(String s, Bitmap bitmap, int j)
{
File file;
file = new File(s);
if (file.exists())
{
file.delete();
}
FileOutputStream fileoutputstream = new FileOutputStream(file);
boolean flag1 = bitmap.compress(android.graphics.Bitmap.CompressFormat.JPEG, j, fileoutputstream);
boolean flag;
flag = flag1;
if (fileoutputstream != null)
{
try
{
fileoutputstream.close();
}
catch (IOException ioexception2)
{
ioexception2.printStackTrace();
return flag;
}
}
_L2:
return flag;
Exception exception;
exception;
fileoutputstream = null;
_L5:
exception.printStackTrace();
flag = false;
if (fileoutputstream == null) goto _L2; else goto _L1
_L1:
try
{
fileoutputstream.close();
}
catch (IOException ioexception1)
{
ioexception1.printStackTrace();
return false;
}
return false;
Exception exception1;
exception1;
fileoutputstream = null;
_L4:
if (fileoutputstream != null)
{
try
{
fileoutputstream.close();
}
catch (IOException ioexception)
{
ioexception.printStackTrace();
}
}
throw exception1;
exception1;
if (true) goto _L4; else goto _L3
_L3:
exception;
goto _L5
}
public static void sendUserInfo2Mili()
{
PersonInfo personinfo = Keeper.readPersonInfo();
if (!personinfo.isValid())
{
Debug.i("Utils", (new StringBuilder()).append(" sendUserInfo2Mili, Person info InValid =").append(personinfo).append("\n").toString());
}
(new BleSetPersonalInfoTask(personinfo, new f())).work();
}
public static void setAutoReconnect(boolean flag)
{
if (cn.com.smartdevices.bracelet.BraceletApp.BLEService != null)
{
MiLiProfile miliprofile = (MiLiProfile)cn.com.smartdevices.bracelet.BraceletApp.BLEService.getDefaultPeripheral();
if (miliprofile != null)
{
Debug.i("Utils", (new StringBuilder()).append("Set auto reconnect :").append(flag).toString());
miliprofile.setAutoReconnect(flag);
return;
}
}
Debug.i("Utils", "Set auto reconnect fail");
}
public static void showProgressDialog(Activity activity, int j)
{
if (activity == null)
{
return;
}
hideProgressDialog(activity);
try
{
Bundle bundle = new Bundle();
bundle.putString("REF_PROGRESS_INFO", activity.getString(j));
DimPanelFragment.showPanel(activity, cn/com/smartdevices/bracelet/ui/ProgressBarFragment, bundle);
return;
}
catch (Exception exception)
{
return;
}
}
public static void switchBracelet(Context context, int j)
{
SwitchOperator switchoperator = new SwitchOperator();
switchoperator.type = j;
boolean flag;
boolean flag1;
DataManager datamanager;
DaySportData daysportdata;
Intent intent;
if (j == 0)
{
flag = true;
} else
{
flag = false;
}
switchoperator.enableClearData = flag;
if (j == 0)
{
flag1 = true;
} else
{
flag1 = false;
}
switchoperator.enableSteps = flag1;
if (j == 1)
{
switchoperator.lastUid = Keeper.readLoginData().uid;
switchoperator.lastMacAddress = Keeper.readBraceletBtInfo().address;
}
switchoperator.date = (new SportDay()).getKey();
datamanager = DataManager.getInstance();
daysportdata = datamanager.get(datamanager.getStopDay());
if (daysportdata != null)
{
StepsInfo stepsinfo = daysportdata.getStepsInfo();
if (stepsinfo != null)
{
switchoperator.steps = stepsinfo.getStepsCount();
}
}
Keeper.keepSwitchOperator(switchoperator);
if (cn.com.smartdevices.bracelet.BraceletApp.BLEService != null)
{
MiLiProfile miliprofile = (MiLiProfile)cn.com.smartdevices.bracelet.BraceletApp.BLEService.getDefaultPeripheral();
if (miliprofile != null)
{
miliprofile.setAutoReconnect(false);
miliprofile.disconnect();
}
}
intent = new Intent();
intent.setAction("com.xiaomi.hm.health.ACTION_DEVICE_UNBIND_APPLICATION");
context.sendBroadcast(intent);
}
public static void updateAvatarUI(PersonInfo personinfo, ImageView imageview)
{
String s = personinfo.avatarPath;
Bitmap bitmap = null;
if (s != null)
{
boolean flag = personinfo.avatarPath.equals("");
bitmap = null;
if (!flag)
{
Uri uri = Uri.fromFile(new File(personinfo.avatarPath));
bitmap = BraceletImageLoader.getInstance().loadImageSync(uri.toString());
Debug.i("Utils", (new StringBuilder()).append("path=").append(personinfo.avatarPath).append(" avatarBitmap=").append(bitmap).toString());
if (bitmap != null)
{
imageview.setBackground(new BitmapDrawable(Util.clipToRoundBitmap(bitmap)));
}
}
}
if (bitmap == null)
{
Debug.i("Utils", (new StringBuilder()).append("avatar Url =").append(personinfo.avatarUrl).toString());
BraceletImageLoader.getInstance().displayRoundImage(personinfo.avatarUrl, imageview);
}
}
public static void updateProfile(PersonInfo personinfo)
{
if (!personinfo.isValid())
{
Debug.i("Utils", "personInfo is inValid!");
return;
} else
{
WebAPI.updateProfile(Keeper.readLoginData(), personinfo, new g(personinfo));
return;
}
}
public static void updateProfile(PersonInfo personinfo, HashMap hashmap, OperationCallback operationcallback)
{
WebAPI.updateProfile(Keeper.readLoginData(), hashmap, new e(operationcallback, personinfo));
}
}